Page({
	data: {
		activeTab: 0, // 当前选中的标签页
		posts: [], // 帖子列表
		page: 1, // 当前页数
		pageSize: 10, // 每页展示的数据数
		city: "", // 用户所在城市
		loading: false, // 是否正在加载
		noMoreData: false // 是否没有更多数据
	},

	onLoad() {
		// 从缓存中获取用户信息
		const userDetails = wx.getStorageSync('userDetails');
		if (userDetails && userDetails.city) {
			this.setData({
				city: userDetails.city
			});
		}

		// 页面加载时加载初始数据
		this.loadPosts();
	},

	// 切换标签页事件
	onTabChange(event) {
		const tabIndex = event.detail.index;
		this.setData({
			activeTab: tabIndex,
			page: 1, // 重置页数
			posts: [], // 清空帖子列表
			noMoreData: false // 重置是否有更多数据
		});
		this.loadPosts();
	},

	// 跳转到详情页
	navigateToDetail(event) {
		const id = event.currentTarget.dataset.id; // 获取帖子ID
		wx.getStorage({
			key: 'isLogin',
			success: (res) => {
				if (res.data) {
					// 已登录，跳转到详情页
					wx.navigateTo({
						url: `/work/pages/work_detail/work_detail?workId=${id}`
					});
				} else {
					// 未登录，跳转到登录页
					wx.navigateTo({
						url: '/pages/login/login'
					});
				}
			},
			fail: () => {
				// 未登录，跳转到登录页
				wx.navigateTo({
					url: '/pages/login/login'
				});
			}
		});
	},

	// 加载帖子
	loadPosts() {
		if (this.data.loading || this.data.noMoreData) return;

		this.setData({
			loading: true
		});

		const {
			activeTab,
			page,
			pageSize,
			city
		} = this.data;

		// 构建查询参数
		const queryParams = {
			page,
			pageSize,
			city: activeTab === 1 ? city : undefined, // 如果是同城标签，传递城市信息
			role: activeTab === 2 ? '1' : activeTab === 3 ? '0' : undefined // 根据标签映射角色
		};

		// 过滤掉 undefined 和 null 的参数
		const filteredParams = Object.keys(queryParams).reduce((acc, key) => {
			if (queryParams[key] !== undefined && queryParams[key] !== null) {
				acc[key] = queryParams[key];
			}
			return acc;
		}, {});

		console.log("过滤后的查询参数:", filteredParams);

		// 调用后端接口
		wx.request({
			url: "http://localhost:8080/user/work/page", // 替换为你的后端接口地址
			method: "GET",
			data: filteredParams,
			success: (res) => {
				console.log("接口响应:", res);
				if (res.data.code === 1) {
					const newPosts = res.data.data.records.map(item => ({
						...item,
						description: item.description || "", // 确保 description 不为 null
						avatar: item.avatar || "", // 确保 avatar 不为 null
						city: item.city || "", // 确保 city 不为 null
						createTime: item.createTime || "", // 确保 createTime 不为 null
						imageUrls: item.urlList ? item.urlList.split(",") : [] // 将 urlList 拆分为数组
					}));
					this.setData({
						posts: this.data.posts.concat(newPosts),
						page: this.data.page + 1,
						noMoreData: newPosts.length < this.data.pageSize
					});
				} else {
					wx.showToast({
						title: "加载失败，请重试",
						icon: "none"
					});
				}
			},
			fail: () => {
				wx.showToast({
					title: "网络错误，请重试",
					icon: "none"
				});
			},
			complete: () => {
				this.setData({
					loading: false
				});
			}
		});
	},

	// 上拉加载更多
	onReachBottom() {
		this.loadPosts();
	}
});